#include "netfd_queue.h"
int init_netfd_queue(netfd_queue_t *queue){
    queue->size=0;
    queue->head=NULL;
    queue->tail=NULL;
    return 0;
}//初始化netfd队列
void print_netfd(netfd_queue_t* queue){
    if(queue->head==NULL){
        printf("the netfd queue is empty\n");
        return;
    }
    q_node_t *temp=queue->head;
    while(temp!=queue->tail){
        printf("%d->",temp->netfd);
        temp=temp->next;
    }
    printf("%d\n",temp->netfd);
    return;

}//打印netfd队列
int get_head_netfd(netfd_queue_t* queue){
    if(queue->head==NULL){
        printf("the netfd queue is empty!\n");
        return -1;
    }
    return queue->head->netfd;

}//获取头节点,但不删除头结点
int del_head_netfd(netfd_queue_t* queue){
    if(queue->head==NULL){
        printf("the netfd queue is empty!\n");
        return -1;
    }
    q_node_t *temp=queue->head;
    if(queue->size==1&&queue->head==queue->tail){
        queue->tail=NULL;
    }
    queue->head=queue->head->next;
    free(temp);
    queue->size--;
    return 0;

}//删除第一个netfd,返回值为是否成功删除
int push_back_netfd(netfd_queue_t*queue,int netfd){
    q_node_t*new_netfd_node=(q_node_t*)calloc(1,sizeof(q_node_t));
    new_netfd_node->netfd=netfd;
    new_netfd_node->next=NULL;
    if(queue->size==0){
        queue->head=new_netfd_node;
        queue->tail=new_netfd_node;
    }else{
        queue->tail->next=new_netfd_node;
        queue->tail=new_netfd_node;
    }
    queue->size++;
    return 0;
}//新增一个netfd尾部增加
